from typing import Any


from mcp.types import PromptArgument
from pydantic import AnyUrl, BaseModel


class MCPFunction(BaseModel):
    name: str
    function_name: str
    server_name: str
    description: str
    function_type:str
    # input_schema：是Tool独有的属性
    input_schema: dict[str, Any] | None = None
    # uri：是Resource/Resource Template独有的属性
    uri: str | AnyUrl | None = None
    # arguments：是prompt独有的属性
    arguments: list[PromptArgument] | None = None
    exec_call: Any | None = None
    execute_function_calling: Any | None = None
